path bar: Don't hide arrows
authorMatthias Clasen <mclasen@redhat.com>
Sun, 24 Jan 2016 21:29:40 +0000 (16:29 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 24 Jan 2016 21:29:40 +0000 (16:29 -0500)
Changing the visibility of child widgets in size-allocate does
not work well with out current allocation and layout machinery.
To avoid the visual fallout, just keep the arrow buttons visible
and only change their sensitivity.

https://bugzilla.gnome.org/show_bug.cgi?id=754868

gtk/gtkpathbar.c

index a647ae7cd71bc41d11e866c852b2a7444b1a78e4..df268846c12fdbaf659a78506b21c45088a8b72e 100644 (file)
@@ -527,7 +527,7 @@ gtk_path_bar_size_allocate (GtkWidget     *widget,
   GList *list, *first_button;
   gint width;
   gint allocation_width;
-  gboolean need_sliders = FALSE;
+  gboolean need_sliders = TRUE;
   gint up_slider_offset = 0;
   gint down_slider_offset = 0;
   GtkRequisition child_requisition;
@@ -585,7 +585,7 @@ gtk_path_bar_size_allocate (GtkWidget     *widget,
       else
        first_button = path_bar->priv->button_list;
       need_sliders = TRUE;
-      
+
       /* To see how much space we have, and how many buttons we can display.
        * We start at the first button, count forward until hit the new
        * button, then count backwards.
@@ -743,7 +743,7 @@ gtk_path_bar_size_allocate (GtkWidget     *widget,
       needs_reorder |= gtk_widget_get_child_visible (path_bar->priv->up_slider_button) == TRUE;
       gtk_widget_set_child_visible (path_bar->priv->up_slider_button, FALSE);
     }
-      
+
   if (need_sliders)
     {
       child_allocation.width = path_bar->priv->slider_width;